package util.crew;

import java.util.regex.Pattern;

import util.tool.Requests;
import util.tool.Sqlite3;

public abstract class Crew implements Runnable{
	String[] string = new String[] {""};
	Requests requests = null;
	Sqlite3 sql = null;
	static String insert = "insert into data (url,platform,publisher,summitTime,content,title,tags,id,imgUrl)" +
			"values('%s',%s,'%s','%s','%s','%s','%s', '%s', '%s');";
	/**
	 * 执行函数
	 * @param s 关键词
	 */
	abstract void work(String s);
	/**
	 * 更新新闻
	 * @param s 文章id
	 * @return
	 */
	abstract boolean update(String s);
	/**
	 * 设置运行时所需资源
	 * @param requests requests对象，用于http访问
	 * @param sql 数据库对象，用于更新数据库内容
	 */
	public void setInitData(Requests requests, Sqlite3 sql) {
		this.sql = sql;
		this.requests = requests;
	}
	/**
	 * 获取文章的标签
	 * @param content 文章内容
	 * @return 标签数组
	 */
	String getTag(String content) {
		// EMA:欺骗性的、有意的在一种产品中故意替换或添加某种物质，目的是增加产品的表观价值或降低其生产成本；
		//  EMA包括对产品的稀释，即将产品中已经存在的组分的数量的提高（如果汁的加水稀释），在某种程度上这类
		//  稀释甚至会对消费者产生一种已知的或者可能的健康风险，EMA还包括用于掩饰稀释的添加或替代食品组分的行为
		
		//玄学分类器
		String rString = "";
		//即任何内容，只要含有:过期|毒|含有|添加,就true
		if (Pattern.matches(".*(过期|毒|含有|添加).*", content)) {
			rString += "非法添加";
		}
		if (rString.length() == 0) rString = "其他";
		return rString;
	}
	/**
	 * 删除文章内容中的html标签
	 * @param raw 文章内容
	 * @return 删除标签后的文章
	 */
	String removeHtmlTags(String raw) {

		raw = raw.replaceAll("<[^>]+>", "");
		raw = raw.replaceAll("\\[!.*?\\].*?\\[!.*?\\]", "");
		raw = raw.replaceAll("&nbsp;", "");
		return raw.replaceAll("^\\s*|\\s*$", raw);

	}
}
